package com.cryptoneedle.garden.dto;

import com.cryptoneedle.garden.key.TableKey;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>description: Doris-元数据-TableStatus </p>
 * <p>
 * 数据来源：SHOW TABLE STATUS FROM internal.xxx;
 *
 * @author CryptoNeedle
 * @date 2025-09-25
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString
public class DorisMetadataTableStatus implements Serializable {

    // 所属 Catalog
    private String catalogName;

    // 所属 Database
    private String databaseName;

    // 表名称
    private String tableName;

    // 表存储引擎
    private String engine;

    // 无效值
    //private Long version;

    // 无效值
    //private String rowFormat;

    // 表预估行数
    private Long tableRows;

    // 平均每行包括的字节数
    private Long avgRowLength;

    // 整个表的数据量 (单位：字节)
    private Long dataLength;

    // 无效值
    //private Long maxDataLength;

    // 无效值
    //private Long indexLength;

    // 无效值
    //private Long dataFree;

    // 无效值
    //private Long autoIncrement;

    // 表创建时间
    private Date createTime;

    // 表数据更新时间
    private Date updateTime;

    // 无效值
    //private Date checkTime;

    // 固定值：utf-8
    private String tableCollation;

    // 无效值
    //private Long checksum;

    // 无效值
    //private String createOptions;

    // 表注释
    private String tableComment;

    public String getKey() {
        return new TableKey(this.catalogName, this.databaseName, this.tableName).toString();
    }
}